7 research outputs found

    A study of code change patterns for adaptive maintenance with AST analysis

    Get PDF
    Example-based transformational approaches to automate adaptive maintenance changes plays an important role in software research. One primary concern of those approaches is that a set of good qualified real examples of adaptive changes previously made in the history must be identified, or otherwise the adoption of such approaches will be put in question. Unfortunately, there is rarely enough detail to clearly direct transformation rule developers to overcome the barrier of finding qualified examples for adaptive changes. This work explores the histories of several open source systems to study the repetitiveness of adaptive changes in software evolution, and hence recognizing the source code change patterns that are strongly related with the adaptive maintenance. We collected the adaptive commits from the history of numerous open source systems, then we obtained the repetitiveness frequencies of source code changes based on the analysis of Abstract Syntax Tree (AST) edit actions within an adaptive commit. Using the prevalence of the most common adaptive changes, we suggested a set of change patterns that seem correlated with adaptive maintenance. It is observed that 76.93% of the undertaken adaptive changes were represented by 12 AST code differences. Moreover, only 9 change patterns covered 64.69% to 76.58% of the total adaptive change hunks in the examined projects. The most common individual patterns are related to initializing objects and method calls changes. A correlation analysis on examined projects shows that they have very similar frequencies of the patterns correlated with adaptive changes. The observed repeated adaptive changes could be useful examples for the construction of transformation approache

    Inference and optimal design for the k-level step-stress accelerated life test based on progressive Type-I interval censored power Rayleigh data

    Get PDF
    In this paper, a new generalization of the one parameter Rayleigh distribution called the Power Rayleigh (PRD) was employed to model the life of the tested units in the step-stress accelerated life test. Under progressive Type-I interval censored data, the cumulative exposure distribution was considered to formulate the life model, assuming the scale parameter of PRD has the inverse power function at each stress level. Point estimates of the model parameters were obtained via the maximum likelihood estimation method, while interval estimates were obtained using the asymptotic normality of the derived estimators and the bootstrap resampling method. An extensive simulation study of k=4 k = 4 levels of stress in different combinations of the life test under different progressive censoring schemes was conducted to investigate the performance of the obtained point and interval estimates. Simulation results indicated that point estimates of the model parameters are closest to their initial true values and have relatively small mean squared errors. Accordingly, the interval estimates have small lengths and their coverage probabilities are almost convergent to the 95% significance level. Based on the Fisher information matrix, the D-optimality and the A-optimality criteria are implemented to determine the optimal design of the life test by obtaining the optimum inspection times and optimum stress levels that improve the estimation procedures and give more efficient estimates of the model parameters. Finally, the developed inferential procedures were also applied to a real dataset

    Statistical inference for the Power Rayleigh distribution based on adaptive progressive Type-II censored data

    Get PDF
    The Power Rayleigh distribution (PRD) is a new extension of the standard one-parameter Rayleigh distribution. To employ this distribution as a life model in the analysis of reliability and survival data, we focused on the statistical inference for the parameters of the PRD under the adaptive Type-II censored scheme. Point and interval estimates for the model parameters and the corresponding reliability function at a given time are obtained using likelihood, Bootstrap and Bayesian estimation methods. A simulation study is conducted in different settings of the life testing experiment to compare and evaluate the performance of the estimates obtained. In addition, the estimation procedure is also investigated in real lifetimes data. The results indicated that the obtained estimates gave an accurate and efficient estimation of the model parameters. The Bootstrap estimates are better than the estimates obtained by the likelihood estimation approach, and estimates obtained using the Markov Chain Monte Carlo method by the Bayesian approach under both the squared error and the general entropy loss functions have priority over other point and interval estimates. Under the adaptive Type-II censoring scheme, concluding results confirmed that the PRD can be effectively used to model the lifetimes in survival and reliability analysis

    Understanding and identifying large-scale adaptive changes from version histories

    No full text
    A systematic study of the adaptive maintenance process is undertaken. The research aims to better understand how developers adapt and migrate systems in response to such things as large API changes. The ultimate goal is to support the construction of automated methods and tools to support the adaptive maintenance process. The main case study involves an exhaustive manual investigation of a number of open source systems (e.g., KOffice, Extragear/graphics, and OpenGL) during a time when a large adaptive maintenance task was taking place. In each case the adaptive maintenance task involved a substantial API migration (e.g., Qt3 to Qt4) that took place over multiple years. Additionally, the systems were also undergoing other modifications (perfective and corrective) such as bug fixing and the addition of new features. The main goal of the study was to identify and distinguish the adaptive maintenance changes from the other types of changes. These adaptive maintenance commits are then analyzed to identify common characteristics and trends. The analysis examines the amount of change taking place for each commit, the vocabulary of the commit messages, the authorship of the changes, and the stereotype of modified methods. The data provides a point of reference for the study of these types of changes. This is also the first published in-depth and systematic examination of large adaptive maintenance tasks. The results show that adaptive maintenance tasks involve a relatively few number of large changes. There are also few developers involved in this task and they use a somewhat standard vocabulary in describing the associated commits. This information is they used as a means to automatically identify adaptive changes. An information retrieval technique, namely Latent Semantic Analysis, is used to retrieve relevant adaptive commits when querying the commits available in the version control system. The approach was found to have good accuracy. Our results show that the approach accurately retrieves relevant adaptive commits, with nearly 90% recall. Additionally, a means to uncover a set of traceability links between source code files and other artifacts resulting from adaptive maintenance tasks is developed. The validation results show highly precision predictions using TraceLab components

    A TraceLab-Based Solution for Identifying Traceability Links using LSI

    No full text
    Abstract—An information retrieval technique, latent semantic indexing (LSI), is used to automatically identify traceability links from system documentation to program source code. The experiment is performed in the TraceLab framework. The solution provides templates and components for building and querying LSI space and datasets (corpora) that can be used as inputs for these components. The proposed solution is evaluated on traceability links already discovered by mining adaptive commits of the open source system KDE/Koffice. The results show that the approach can identify of traceability links with high precision using TraceLab components

    Towards Understanding Large-Scale Adaptive Changes from Version Histories

    No full text
    Abstract—A case study of three open source systems undergoing large adaptive maintenance tasks is presented. The adaptive maintenance task involves migrating each system to a new version of a third party API. The changes to support the migration were spread out over multiple years for each system. The first two systems are both part of KDE, namely KOffice and Extragear/graphics. The adaptive maintenance task, for both systems, involves migrating to a new version of Qt. The third system is OpenSceneGraph that underwent a migration to a new version of OpenGL. The case study involves sifting through tens of thousands of commits to identify only those commits involved in the specific adaptive maintenance task. The object is to develop a data set that will be used for developing automated methods to identify/characterize adaptive maintenance commits

    srcSlice: Very Efficient and Scalable Forward Static Slicing

    No full text
    A highly efficient lightweight forward static slicing approach is presented and evaluated. The approach does not compute the program/system dependence graph but instead dependence and control information is computed as needed while computing the slice on a variable. The result is a list of line numbers, dependent variables, aliases, and function calls that are part of the slice for all variables (both local and global) for the entire system. The method is implemented as a tool, called srcSlice, on top of srcML, an XML representation of source code. The approach is highly scalable and can generate the slices for all variables of the Linux kernel in approximately 20min on a typical desktop. Benchmark results are compared with the CodeSurfer slicing tool from GrammaTech Inc., and the approach compares well with regard to accuracy of slices. Copyright (c) 2014 John Wiley & Sons, Ltd
    corecore